The next generation High Efficiency Video Coding (HEVC/H.265) standard, which was developed jointly by the ITU and ISO MPEG, has introduced several new video coding tools in an effort to improve video coding efficiency versus previous video coding standards and technologies such as MPEG-2, MPEG-4 part2, MPEG-4 AVC/H.264, VC1, and VP8 among others. In its first version, this new standard can support the encoding of YUV 4:2:0 8 or 10 bit material using three, well defined profiles, i.e. the Main, Main 10, and Main Still Picture profiles. However, work is still progressing in supporting higher than 10 bit sample precision (bit-depth) as well as different color sampling formats and color spaces, including YUV 4:2:2, YUV 4:4:4, and RGB 4:4:4 among others. The encoding of such materials is of considerable interest primarily for use in several professional applications, such as cinema applications, capture, video editing, archiving, medical imaging etc., but also in several consumer applications such as screen content compression and sharing, remote computing, and gaming among others.
Until recently, existing video codecs have almost always given a much higher priority in coding the luma component of an image. Coding parameters that control the coding characteristics and quality of the luma information are mainly provided at lower levels of the video coding hierarchy such as slice, coding tree block, coding unit, or even the transform block level of HEVC. Control and tuning parameters for all other components are mainly possible at a higher level such as at the Sequence, Picture Parameter Set, or Slice level in conjunction with the modifications of the luma control parameters. For example, in MPEG-4 AVC, luma quantization and the corresponding Quantization Parameter (QP) was controlled with a signaled parameter at the macroblock level. A single offset for each chroma component was provided in the Picture Parameter Sets. Each chroma QP offset controls the QP value of the corresponding chroma component in relationship to the luma QP within each macroblock. However, this relationship is fixed for the entire picture. If it was desired to change the quality of a luma or chroma area, then the other components were also impacted given this very tight relationship. In HEVC, some additional control was also provided since HEVC allows separate chroma quantization offset signaling for each slice. However, using multiple slices may not be desirable or functional for some applications, while the control provided is still somewhat coarse.
For some applications or content, being able to control the quality of some color components independently can be quite important in an attempt to improve overall quality, the compression ratio, as well as the overall user experience. Some areas, for example, may be characterized by different texture or noise characteristics even in the color components, while it may be important to enhance color edges, more or less so than enhancing the same information in luma. Furthermore, for 4:4:4 applications such as video display sharing and remote computing, it may be desirable to encode RGB content where the importance, and thus desired control, of the red and blue color components tends to be higher than the chroma components in the YUV domain. It may also be desirable to encode mixed video content that is a combination of synthetic content, such as computer graphics or applications, with natural images or videos. In this scenario, given the different characteristics of natural versus synthetic content, as well as the possibility that the natural content were originally 4:2:0 images up-converted for display to 4:4:4, having the ability to control chroma quantization parameters could potentially impact coding performance and subjective quality considerably.
What is needed is a method that allows further control of the chroma quantization parameters compared to existing codecs, as well as extending this support for all common color formats (such as YUV, RGV, YCoCg, or YCoCg-R), all common color sampling schemes (such as 4:2:0, 4:2:2. 4:4:4, or 4:4:4:4), as well as a variety of bit depths for each component. Such method should allow signaling and changing of chroma QP offset information within a coding block in a much more flexible manner without placing any limitations on color or sampling formats.